package com.designPattern.composite;

/**
 * @author mxs
 */
public abstract class OrganizationComponent {
    private String des;
    private String name;

    public OrganizationComponent(String des, String name) {
        this.des = des;
        this.name = name;
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    /**
     * 因为不是每一个类都需要实现这个方法
     * 叶子结点就不需要实现这个方法
     * 为了避免大量叶子结点实现这个没有意义方法，所以将这个方法空实现
     * @param organizationComponent
     */
    public void add(OrganizationComponent organizationComponent){}

    /**
     * 意义同上
     * @param organizationComponent
     */
    public void delete(OrganizationComponent organizationComponent){}

    /**
     * 打印出该结点以及往下所有结点
     */
    public abstract void print();
}
